1. Field of the Invention
This invention is related in general to the field of information handling systems. In particular, the invention consists of a method of preserving operations on persistent data during power interruptions.
2. Description of the Prior Art
In a computing system, digital information is often stored within storage server systems that include hard disk drives, magnetic tapes, optical disks, or other memory storage device. These memory storage devices are usually segregated into ranks or redundant arrays of independent disks (“RAIDS”). This allows for striping information over numerous memory storage devices to provide redundancy in case of a device failure. Each memory storage device may be divided into a plurality of segments. Additionally, each memory storage device may include a reserved area separate from the segments. Both the reserved area and the segments include continuous areas for writing information to and reading information from referred to as tracks.
A memory storage device may include several types of tracks, with each type of track being used for a specific purpose. In a complex storage server system, these types of tracks may include status information tracks such as global Copy Services Meta Data (“CSMD”) tracks residing within the reserved areas and volume-level Meta Data (“VLMD”) tracks residing within the segments.
A storage server system can be logically ordered so that the memory storage devices are used to form a logically continuous memory space. For example, one or more segments may be used to create a volume, e.g., a logical memory space. Volumes are ordered into one or more logical subsystems (“LSS”) and one or more logical subsystems form the logical memory space of the storage server system. This logical memory space is used to hold customer or client information.
Operations on reserved area tracks and segment tracks may take many forms, including writing information to them, reading information from them, and clearing them. In a clearing process, information residing on a track is destroyed or erased. An example of an instruction to erase a track is a Clear Status Tracks (“CST”) command. When executed, a CST command erases information on the CSMD and VLMD tracks. However, a problem occurs is a memory storage device is inaccessible at the time the CST command is issued.
One method of ensuring that a CST command has been performed on CSMD is to utilize redundant copies of CSMD within the storage server system. If a memory storage device holding CSMD is offline, it may simply be updated from other copies of the CSMD. However, the vast majority of information residing within the storage server system is client or customer information. Because it would not be efficient to store multiple copies of this information over numerous memory storage devices, if a memory storage device is offline when a CST command is issued, there may be no mechanism for ensuring that VLMD is cleared when the device becomes accessible again. If the CST is not performed on these VLMD tracks, stale and potentially damaged data would remain on the tracks.
To solve this problem, information pertaining to whether CST must be performed on VLMD tracks must be logged and maintained in a persistent manner. In a storage server system including logical subsystems, this data must track each volume for each LSS.
In U.S. Pat. No. 5,592,675, Hiromichi Itho et al. disclose saving work states for multiple users on a shared system. A work state is saved as persistent data at power off and restored at power on. However, there is no discussion of how to handle operations, such as a deletion, that could be performed on persistent work states. It would be advantageous to have a system to maintain persistence of operations which are performed on persistent data.
In U.S. Pat. No. 6,351,751, Bernard Traversat et al. describe a persistent data manager client/server interface but does not teach how persistence of operations performed on non-volatile data is performed. Rather, the invention teaches who handles the operations to be done on persistent data. A client sends a request to read, modify, or delete non-volatile data and the server performs the action. There is no mention of whether or not the request to modify or delete the non-volatile data is kept persistent in any way. It would be advantageous to have a system that maintains persistent operations to be performed on non-volatile memory.
In U.S. Pat. No. 6,434,641, Michael Haupt et al. teach how to defer read and write accesses for addresses in memory until a time when such data is allowed access. Deferment is implemented by creating a linked list of access requests in a temporary storage structure. Because the nature of this storage structure is temporary, there is no way of remembering these deferred requests across power cycles. It would be advantageous to maintain a deferred operation on inaccessible persistent data even in the event of a power loss.
While some of the above patents and publications may provide a method of managing persistent data, none address the problem of maintaining persistence of operations that must be performed on persistent data. None of these documents indicate how to handle persistent data when the data is inaccessible. Furthermore, these inventions do not offer a method for maintaining operations on persistent data across power cycles. Accordingly, it is desirable to have a method for managing operations on persistent data, even over power cycles and during periods when the persistent data is unavailable.